//in game.h

	Movables _projectile;
	bool _is_shooting;


//in game .cpp


	if(instruction != SHOOT && _is_shooting == true)
	{
		_is_shooting = false;
		_map.remove_movable_from_map(_projectile);	
	}


	if(instruction == SHOOT)
	{
		Direction shoot_direction = _digdug.direction();

		if(_is_shooting == false)
		{
		
			int delta_x = 0;
			int delta_y = 0;

			switch(shoot_direction)
			{
				case UP:	delta_y = -1;	break;
				case DOWN:	delta_y = +1;	break;		
				case LEFT:	delta_x = -1;	break;		
				case RIGHT:	delta_x = +1;	break;
			}

			int projectile_x = _digdug.x() + delta_x*(_digdug.radius() + _projectile.radius());
			int projectile_y = _digdug.y() + delta_y*(_digdug.radius() + _projectile.radius());

			_projectile.set_location(projectile_x, projectile_y);
			_map.plot_movable_on_map(_projectile);
		}

		if(move(_projectile, shoot_direction) == DEATH_TO_MONSTER)
		{
			//find closest monster and kill him
			int delta_x = 0;
			int delta_y = 0;

			int current_total_distance = 0;
			int prev_total_distance = 100;
			int monster_number = 0;


			for(int i = 0; i!= _monsters.size(); i++)
			{
				delta_x = _monsters.at(i).x() - _projectile.x();
				delta_y = _monsters.at(i).y() - _projectile.y();
				current_total_distance = abs(delta_x) - abs(delta_y);

				if(abs(current_total_distance) < abs(prev_total_distance))
				{
					prev_total_distance = current_total_distance;
					monster_number = i;
				}				

			}

			//remove dead monster from map and delete him
			_map.remove_movable_from_map(_monsters.at(monster_number));
			vector<Movables>::iterator start_of_vec = _monsters.begin();
			_monsters.erase(start_of_vec + monster_number);
			//remove the projectile from the map and delete it
			_map.remove_movable_from_map(_projectile);
			_is_shooting = false;
		}

	}